package com.thinking.in.spring.ioc.dependency.injection;

import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;

/**
 *
 * 自动的方式注入：
 *      1 通过名称 自动注入
 * @author zjiajia
 * @date 2021/12/31 14:01
 */
public class AutoWiringByNameDependencyConstructDemo {

    public static void main(String[] args) {
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        // Xml Bean 定义信息  Reader : 参数传入一个  Bean定义信息的注册中心
        XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);
        // 资源配置文件
        String xmlResourcePath = "classpath:/META-INF/autowiring-dependency-construct-injection.xml";
        // 加载资源配置文件 ,解析并生成 BeanDefinition
        beanDefinitionReader.loadBeanDefinitions(xmlResourcePath);

        UserHolder userHolder = beanFactory.getBean(UserHolder.class);

        System.out.println(userHolder);
    }
}
